package com.arialyy.aria.m3u8.merge;

import com.arialyy.aria.core.download.M3U8Entity;
import com.arialyy.aria.core.processor.ITsMergeHandler;

public interface VodTSMergeHandle extends ITsMergeHandler {
    /**
     * 边下边合成ts文件完成回调
     *
     * @param m3U8Entity m3u8信息，可通过{@link M3U8Entity#keyPath}、{@link M3U8Entity#keyUrl}、
     * {@link M3U8Entity#iv}、{@link M3U8Entity#method} 获取相应的加密信息
     * @param status {@code true} 合并成功
     * @param tsTotals 总ts切片数量
     * @param tsFailed 失败ts切片数量
     * @param transformTime 合成耗时（毫秒）
     * @param mergeFilePath 合成成功的输出文件路径
     */
    void mergeComplete(M3U8Entity m3U8Entity, boolean status ,int tsTotals ,int tsFailed,long transformTime,String mergeFilePath);
    /**
     * 合成TS文件后是否要转化为mp4文件格式
     * 转化mp4文件需要消耗另外的时间，4GB文件耗时在20~40s左右，具体时间与文件大小，手机性能有关。
     * 如果需要转化为mp4文件，那么ts文件的结构会转化为mp4结构；
     * 如果不需要转化，那么ts文件合成完成后将重直接将.ts的后缀名修改为.mp4，但是其内部的媒体格式仍是ts的结构；
     *
     * 由于回调用于设置合成器，所以只有在任务始前设置有效。
     * @return true:需要，false:不需要
     */
    boolean mergeCompleteNeedTransformMP4();
}
